#ifndef PROBLEM_H
#define PROBLEM_H

#include <vector>

class Problem {

public:
    virtual float currentEnergy() const = 0;
    virtual float energy ( int state ) const = 0;
    virtual void generateStates ( std::vector<int> & container ) = 0;
    virtual void setState ( int state ) = 0;
    virtual bool isSolved() const = 0;
    virtual ~Problem() {}
};

#endif // PROBLEM_H
